
import axios from 'axios'
// 请求超时
axios.defaults.timeout = 5000
// 这个是接口地址, 打包所有的都是自动配置的
axios.baseURL = '/api'
axios.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么
    // 获取本地存储的token值
    const mytoken = sessionStorage.getItem('mytoken')
    // 可以在这里拼接
    config.url = '/api' + config.url
    if (mytoken) {
      // 让每个请求携带token-- ['token']为自定义key
      config.headers.Authorization = mytoken
      config.headers.Token = mytoken
    }
    // 全局去前后空格
    function dataTrim (data) {
      if (Array.isArray(data)) {
        for (let item of data) {
          if (typeof item == 'object') {
            dataTrim(item)
          } else if (typeof item == 'string') {
            item = item.trim()
          }
        }
      } else if (typeof data == 'object') {
        for (const key in data) {
          if (typeof data[key] == 'object') {
            dataTrim(data[key])
          } else if (typeof data[key] == 'string') {
            data[key] = data[key].trim()
          }
        }
      }
    }
    dataTrim(config.data)
    return config
  },
  error => {
    console.log(error) // for debug
    return Promise.reject(error)
  }
)

// 拦截响应
axios.interceptors.response.use(
  response => {
    // console.log(response)
    const { data, status } = response
    if (status === 200) {
      if (data.code === 401) {
        // token 过期啊
        // 重新登录
      } else {
        return Promise.resolve(data) // 统一处理,只返回 后台数据data 对象
      }
    } else {
      // const data = response.data
      return data
    }
  },
  error => {
    console.log(error) // for debug
    return Promise.reject(error)
  }
)

export default axios
